package abg.core.service.chat;

import abg.core.domain.chat.ChatFriendMsgVo;
import abg.core.domain.chat.ChatGroupMsgVo;
import abg.core.domain.chat.ChatMsgListVo;
import abg.core.domain.db.ChatMsg;
import abg.core.domain.search.Psh;
import com.mybatisflex.core.paginate.Page;

import java.util.List;

public interface ChatMsgService {

    /**
     * 设置消息状态为已读
     *
     * @param chatIds 主键ID
     */
    boolean msgRead(String chatIds);

    /**
     * 用户，发送消息给 用户/群
     *
     * @param param 消息体
     */
    boolean sendChatMsg(ChatMsg param);

    /**
     * 通知用户需要拉取消息
     *
     * @param receiveUserId 通知用户ID
     */
    boolean wsNoticeUserGetMsg(String sendUserId, String receiveUserId);

    //    用户拉取最后消息列表
    List<ChatMsgListVo> chatMsgLastList();

    boolean updateChatMsgLast(String chatMsgId);

    //获取指定朋友聊天记录
    Page<ChatFriendMsgVo> friendMsgPage(Psh psh, String friendUserId);

    //获取指定群的聊天记录
    Page<ChatGroupMsgVo> groupMsgPage(String groupId);
}
